import { getCityCurrent, hasCityCurrent, setCityCurrent } from 'utils/storage'
import request from '../utils/request'

/**
 * 获取城市
 * @param {*} params  level 1 表示获取所有城市数据 2 表示城市下区的数据
 * @returns
 */
export const getCity = (params) => {
  return request({
    method: 'GET',
    url: '/area/city',
    params,
  })
}

/**
 * 获取热门城市
 * @returns
 */
export const getHotCity = () => {
  return request({
    method: 'GET',
    url: '/area/hot',
  })
}

/**
 * 获取城市信息
 * @param {*} params name 地区的name
 * @returns
 */
export const getCityInfo = () => {
  // 如果本地有城市 则不发请求
  if (!hasCityCurrent()) {
    return new Promise((resolve, reject) => {
      // 百度地图得到API
      const curCity = new window.BMapGL.LocalCity()
      curCity.get(async ({ name }) => {
        try {
          const { body: res } = await request({
            url: '/area/info?name=' + name,
          })
          // 将城市保存到本地
          setCityCurrent(res)
          resolve(res)
        } catch (err) {
          reject(err)
        }
      })
    })
  }
  // 有城市和没有城市都返回一个promise
  return Promise.resolve(getCityCurrent())
}

/**
 * 获取房源信息
 * @param {*} id 房源id
 * @returns
 */
export const getAreaInfo = (id) => request({ url: '/area/map/?id=' + id })
